/*
 * @Author: qjb 
 *  用户注册
 * @Date: 2018-08-07  
 */
layui.config({
}).use(['zlConfig', 'zlContext', 'zlSelecttree', 'zlPinYin', 'form', 'element'], function (exports) {
	var $ = layui.$
		, zlContext = layui.zlContext
		, layer = layui.layer
		, zlConfig = layui.zlConfig
		, statusName = zlConfig.global.result.statusName
		, msgName = zlConfig.global.result.msgName
		, dataName = zlConfig.global.result.dataName
		, ERROR = zlConfig.global.result.errorState
		, OK = zlConfig.global.result.okState
		, zlPinYin = layui.zlPinYin
		, form = layui.form
		, element = layui.element;
	form.render();
	function checkPassWord(value) {
		// 0： 表示第一个级别 弱 1：表示第二个级别 中 2：表示第三个级别 强
		// 3： 表示第四个级别 4：表示第五个级别
		var modes = 0;
		if (value.length < 6) {//最初级别
			return modes;
		}
		if (/\d/.test(value)) {//如果用户输入的密码 包含了数字
			modes++;
		}
		if (/[a-z]/.test(value)) {//如果用户输入的密码 包含了小写的a到z
			modes++;
		}
		if (/[A-Z]/.test(value)) {//如果用户输入的密码 包含了大写的A到Z
			modes++;
		}
		if (/\W/.test(value)) {//如果是非数字 字母 下划线
			modes++;
		}
		return modes;
	};
	
	// 密码输入时 实时检测强度
	$('input[name="PSW"]').on('keyup',function(){
		var newLevel = checkPassWord($(this).val());
		if ($(this).val() == '') {
			element.progress('strenth', '0');
			$('span.strenth_Text').html('无').css('color','#666');
			return;
		}

		function progress(barColor, length, strenthText, textColor){
			$('div.layui-progress-bar').removeClass(function(index, classname){
				return classname.substr(19)
			}).addClass('layui-bg-' + barColor)
			element.progress('strenth', length);
			$('span.strenth_Text').html(strenthText).css('color',textColor);
		}

		switch (newLevel) {
			case 0:
				progress('red','20%','弱','#FF5722')
				break;
			case 1:
				progress('orange','40%','中','#FFB800')
				break;
			case 2:
				progress('blue','60%','强','#1E9FFF')
				break;
			case 3:
				progress('green','80%','很强','#277FD0')
				break;
			case 4:
				progress('cyan','100%','最强','#2F4056')
				break;
		}
	});

	form.verify({
		zhanghm: function (value, item) { //value：表单的值、item：表单的DOM对象
			if (value == "") {
				return '登录账号不能为空';
			}
			var regEn = /[`~!@#$%^&*()_+<>?:"{},.\/;'[\]]/im,
            regCn = /[·！#￥（——）：；“”‘、，|《。》？、【】[\]]/im;
			if (value && (regEn.test(value) || regCn.test(value))) {
				return '登录账号不能有特殊字符';
			}
		}
		, pass: function (value, item) {
			if (value == "") {
				return '密码不能为空';
			}
			// 0： 表示第一个级别 弱 1：表示第二个级别 中 2：表示第三个级别 强
			// 3： 表示第四个级别 4：表示第五个级别
			var pscheck = parseInt($('input[name="PassStrongCheck"]').val());
			if (pscheck !== "none") {
				var pstrong = checkPassWord(value);
				if(pstrong<pscheck){
					var msg='密码强度不够，';
					if(pscheck==1){
						msg+='需为中以上的强度才能注册';
					}else if(pscheck==2){
						msg+='需为强以上的强度才能注册';	
					}else if(pscheck==3){
						msg+='需为很强以上的强度才能注册';	
					}else if(pscheck==4){
						msg+='需为最强的强度才能注册';	
					}else {
						msg+='无法注册';		
					}
					return msg;
				}
			}
			if( $('input[name="PSW"]').val()!==$('input[name="repass"]').val()){
				return '两次密码输入不一致';
			}
		}
		, objname: function (value, item) {
			if (value == "") {
				return item.placeholder + '不能为空';
			}
		}
	});

	function reloadVcode() {
		var vcodekey = $('input[name="vcodekey"]').val();
        var url = layui.cache['contentPath']+"/captcha.jpg?vcodekey=" + vcodekey +"&type=simple&t=" + Math.floor(Math.random() * 100);
        $("#captchaImg").prop("src", url);
    }
    $("#captchaImg").click(function () {
        reloadVcode();
	});

	$('input[name=OBJNAME]').change(function () {
		var v = $('input[name=OBJNAME]').val();
		/**部门名 */
		var v1 = zlPinYin.C(v);
		$('input[name=ZHANGHM]').val(v1);
	});
	
	//短信验证码
	function getSmsCode(){
		var phone = $("#LAY-user-regedit-cellphone").val();
		if(!zlContext.verifyPhone(phone,"请输入正确的手机号")){
		  $("#LAY-user-regedit-cellphone").focus();
		  return false;
		}
		var vcode = $("#regvercode").val();
		if(!vcode){
		  layer.msg("请输入图形校验码");
		  $("#regvercode").focus();
		  return false;
		}

		//校验手机号是否存在
        var hasExisted = false;
        zlContext.asyncGet(layui.cache['contentPath'] + "/core/sms/phone/hasexisted",{'phone': phone}, function(result){
          if(OK == result[statusName]){
            if(result[dataName] && "1" == result[dataName].hasExisted){
              hasExisted = true;
            }
          }
        },true)
        //手机已注册
        if(hasExisted){
		//   zlContext.errorMsg("该手机号已注册，不可重复注册");
		  layer.msg("该手机号已注册，不可重复注册");
          return false;
        }

		var vcodekey = $('input[name="vcodekey"]').val();
		var orgid = $('.layadmin-user-login-box input[name="ORGID"]').val();
		var param = {
		  'phone': phone,
		  'vcode': vcode,
		  'vcodekey': vcodekey,
		  'orgid': orgid
		}
		zlContext.get(layui.cache['contentPath'] + "/core/sms/send/regedit/smscode",param,function(result){
		  if(OK == result[statusName]){
			zlContext.successMsg(result[msgName]);
		  }else{
			reloadVcode();
			zlContext.errorMsg(result[msgName]);
		  }
		},true);
		zlContext.setCountdown(60,'LAY-user-getsmscode',true);
	}

	$("#LAY-user-getsmscode").click(function(){
		getSmsCode();
	});

	//提交
	form.on('submit(LAY-user-reg-submit)', function (obj) {
		var field = obj.field;
		var v = $('input[name="OBJNAME"]').val();
		$('input[name="OBJCODE"]').val(zlPinYin.C(v));
		field.OBJCODE = zlPinYin.C(field.OBJNAME);
		//是否同意用户协议
		//		  if (!field.agreement) {
		//				return layer.msg('你必须同意用户协议才能注册');
		//			}
		field.PSW = md5(field.PSW).toUpperCase();
		zlContext.put(layui.cache['contentPath'] + '/core/security/regedit', field, function (result) {
			if (result[statusName] == OK) {
				zlContext.successAlert('用户注册成功，请耐心等待管理员审核，管理员审核通过后即可登录本系统！', function () {
					top.location.href = layui.cache['contentPath'] + '/logout';
					return true;
				});
			}
			else {
				reloadVcode();
				zlContext.errorMsg(result[msgName]);
			}
		});
		return false;
	});
});

